//app.js
App({
  globalData: {
    url: "https://verp6.vworkcloud.com",
    userInfo: null,
    startDateTime: "2022-06-14 22:00:00",
    openid: null,
    // 类型
    typeOptions: [{
      label: "变更",
      value: "C"
    },
    {
      label: "BUG",
      value: "B"
    },
    {
      label: "任务",
      value: "T"
    }],
    // 任务类型
    taskTypeOptions: [{
      label: "设计",
      value: "A"
    },
    {
      label: "开发",
      value: "B"
    },
    {
      label: "文档",
      value: "C"
    },
    {
      label: "会议",
      value: "D"
    },
    {
      label: "验收",
      value: "E"
    },
    {
      label: "管理",
      value: "F"
    }],
    // 状态
    statusOptions: [{
      label: "等待",
      value: "WS"
    },{
      label: "工作中",
      value: "W"
    },{
      label: "等待验收",
      value: "WA"
    },{
      label: "验收通过",
      value: "A"
    },{
      label: "取消",
      value: "C"
    }],
    //级别
    startLevelOptions: [{
      label: "高",
      value: "A"
    },{
      label: "中",
      value: "B"
    },{
      label: "低",
      value: "C"
    }],
    noticeTxt: [
    "生活不止眼前的苟且，还有读不懂的诗和到不了的远方。",
    "上帝是公平的，给你了丑的外表，还会给你低的智商，以免让你显得不协调。",
    "据说好多人早上看时间不是为了起床，而是看还能睡多久。",
    "有时候不努力一下，你就不知道什么叫绝望。",
    "人生很多事，终究是会随着时间好起来的。像很多人原本只是胖，久了就变好胖。",
    "不合适就是穷，没感觉就是丑，一见钟情就是好看，深思熟虑就是有钱。",
    "现在的男人，有什么资格和妹子说白头偕老？还没到白发就已经全秃了。",
    "丑小鸭变成白天鹅，并不只是它有多努力，而是它的父母就是白天鹅。",
    "“明明靠脸就能吃饭偏偏要靠才华”并不可悲，可悲的是我们这种“明明靠脸不能吃饭，偏偏靠才华也吃不饱”。",
    "有人说，史上99%的事情是可以用金钱摆平的，但是他们没说的是，剩下的1%就是意味着要更多的钱。",
    "这一生，我明白得最早的一个道理就是，人是铁，床是磁铁。",
    "为什么生活中离不开葱姜蒜？因为：人生葱葱，能姜就就姜就，不能姜就，就蒜了",
    "没钱没时间旅游的话，买个地球仪吧。世界那么大，你不但可以看看，还可以转转。",
    "小时候，虽然穷，但是很快乐，现在不同啦，不仅穷，还不快乐。",
    "只有真正努力过的人才知道，天赋是多么的重要。",
    "有些人在你的生命中出现，其实就是让你知道，你好笨，而且还好骗。",
    "为什么假期感觉很短？因为假期没有上午。",
    "人生的坎，过不去就是绝命谷；踏过去了，还有新的坎等着你。",
    "你以为有钱人很快乐吗，他们的快乐你根本想象不到。",
    "别灰心，人生就是这样起起落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落落的。"
    ]
  },
  getBeTogetherDuration(_this){
    console.log("进入页面")
    _this.setData({
      "startDateTime": this.globalData.startDateTime
    });
    let startTime = new Date(this.globalData.startDateTime).getTime();
    
    let xhero = ()=>{
      console.log("计算时间")
      let nowTime = new Date().getTime();
      let duration = (nowTime - startTime) / 1000;
      let day = Math.floor(duration / 60 / 60 / 24);
      let hour = Math.floor(duration / 60 / 60) % 24;
      let minute = Math.floor(duration / 60) % 60;
      let second = Math.floor(duration) % 60;
      _this.setData({
        "beTogetherDuration": `${day}天 ${hour}小时 ${minute}分钟 ${second}秒`
      });
    }
    xhero();
    setInterval(() => {
      xhero();
    }, 1000);
  },
  getDictionaryLabel(type, arg){
    /**
     * 获取字典Label
    */
    for (const item of this.globalData[type]) {
      if (item.value == arg) {
        return item.label
      }
    }
  },
  getDictionaryValue(type, arg){
    /**
     * 获取字典Value
    */
    for (const item of this.globalData[type]) {
      if (item.label == arg) {
        return item.value
      }
    }
  },
  getNoticeTxt(){
    let index = Math.floor(Math.random()*20);
    return this.globalData.noticeTxt[index]
  },
  gotoLogin(){
    wx.reLaunch({
      url: '../login/login'
    })
  },
  formatDate(t, type){
    const formatNumber = n => {
      n = n.toString()
      return n[1] ? n : '0' + n
    }
    const formatTime = t => {
      const date = new Date(t);
      const year = date.getFullYear()
      const month = date.getMonth() + 1
      const day = date.getDate()
      const hour = date.getHours()
      const minute = date.getMinutes()
      const second = date.getSeconds()

      // return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
      return [year, month, day].map(formatNumber).join(type || '/')
    }

    return formatTime(t || new Date().getTime());
  },
  AjaxPost(data, fun) {
    wx.showLoading({ title: '加载中，请稍后' , mask: true})
    var json = Object.assign({}, data)
    wx.request({
      url: this.globalData.url + "/thornGwt.vue",
      method: "POST",
      data: json,
      header: {
        'authorization': wx.getStorageSync('user').authorization,
        'Cookie': 'authorization=' + wx.getStorageSync('user').authorization,
      },
      success(res) {
        wx.hideLoading();
        wx.hideNavigationBarLoading(); //完成停止加载图标
        wx.stopPullDownRefresh();
        if(res.data.thornMessageKey.errorMessage){
          wx.showToast({
            title: res.data.thornMessageKey.message,
            icon: 'none',
            duration: 2000,
            mask: true
          });
          if(res.data.thornMessageKey.message === "session_timeout"){
            wx.reLaunch({
              url: '../login/login'
            })
          }
        }else{
          console.log();
          if(res.data.thornMessageKey.message === "success"){
            wx.showToast({
              title: res.data.thornMessageKey.message,
              icon: 'none',
              duration: 2000,
              mask: true
            });
            fun({});
          }else{
            fun(JSON.parse(res.data.thornMessageKey.message));
          }
        }
      }, 
      fail(err) {
        wx.hideLoading();
        wx.hideNavigationBarLoading(); //完成停止加载图标
        wx.stopPullDownRefresh();
        wx.showToast({
          title: "请求失败",
          icon: 'none',
          duration: 2000,
          mask: true
        })
        console.log("err",err);
      }
    })
  },
  AjaxUploadFile(data, resFun, form) {
    var json = Object.assign({}, form, {
      // openid: 'ou-Ah0cQAxs4OiBomzJERk1zL9EE'
      token: wx.getStorageSync('loginToken')
    })
    wx.uploadFile({
      url: this.globalData.url +'/xhwxtms/.*.weChatUpLoad', //仅为示例，非真实的接口地址
      filePath: data,
      name: 'file',
      formData: json,
      success(res) {
        const data = res.data
        resFun(res)
        //do something
      }
    })
  },
  CopyWords(content) {
    wx.setClipboardData({
      data: content,
      success: function (res) {
        wx.getClipboardData({
          success: function (res) {
            wx.showToast({
              title: '复制成功'
            })
          }
        })
      }
    })
  },
  GetPhotos(e, _this){
    let whichArray = e.currentTarget.dataset.type;
    wx.chooseImage({
      count: 9,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success (res) {
        // tempFilePath可以作为img标签的src属性显示图片
        const tempFilePaths = res.tempFilePaths;
        _this.setData({[whichArray]: _this.data[whichArray].concat(tempFilePaths)});
        
        for (let i = 0; i < res.tempFilePaths.length; i++){
          var src = res.tempFilePaths[i];
          let base64 = wx.getFileSystemManager().readFileSync(src, 'base64');
          var type = src.split('.')[src.split('.').length - 1];
          var str = [];

          if (type == 'jpeg' || type == 'jpg') {
            str = str.concat(['data:image/jpg;base64,' + base64]);
          } else if (type == 'png') {
            str = str.concat(['data:image/png;base64,' + base64]);
          }

          if (_this.data[whichArray + 'ImgBase64List'].length != 0) {
            _this.setData({
              [whichArray + 'ImgBase64List']: _this.data[whichArray + 'ImgBase64List'].concat(str)
            })
          } else {
            _this.setData({
              [whichArray + 'ImgBase64List']: str
            })
          }
        }

      }
    })
  },
  DelImg(e, _this) {
    wx.showModal({
      content: '确定要删除这张图片吗？',
      cancelText: '取消',
      confirmText: '确认',
      success: res => {
        if (res.confirm) {
          _this.data[e.currentTarget.dataset.type].splice(e.currentTarget.dataset.index, 1);
          _this.data[e.currentTarget.dataset.type+'ImgBase64List'].splice(e.currentTarget.dataset.index, 1);
          _this.setData({
            [e.currentTarget.dataset.type]: _this.data[e.currentTarget.dataset.type],
            [e.currentTarget.dataset.type+'ImgBase64List']: _this.data[e.currentTarget.dataset.type+'ImgBase64List'],
          })
        }
      }
    })
  },
  onLaunch: function() {
    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })
    // 获取系统状态栏信息
    wx.getSystemInfo({
      success: e => {
        this.globalData.StatusBar = e.statusBarHeight;
        let custom = wx.getMenuButtonBoundingClientRect();
        this.globalData.Custom = custom;
        this.globalData.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
      }
    })
  }
})